﻿using System;
using System.Collections.Generic;
using System.Text;

namespace WindowsUserControl.Controls
{
    /// <summary>
    /// 
    /// </summary>
    public class TreeGridNodeEventBase
    {
        private TreeGridNode _node;
        /// <summary>
        /// 
        /// </summary>
        /// <param name="node"></param>
        public TreeGridNodeEventBase(TreeGridNode node)
        {
            this._node = node;
        }
        /// <summary>
        /// 
        /// </summary>
        public TreeGridNode Node
        {
            get { return _node; }
        }
    }


    /// <summary>
    /// 
    /// </summary>
    public class CollapsingEventArgs : System.ComponentModel.CancelEventArgs
    {
        private TreeGridNode _node;

        private CollapsingEventArgs() { }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="node"></param>
        public CollapsingEventArgs(TreeGridNode node)
            : base()
        {
            this._node = node;
        }

        /// <summary>
        /// 
        /// </summary>
        public TreeGridNode Node
        {
            get { return _node; }
        }

    }


    /// <summary>
    /// 
    /// </summary>
    public class CollapsedEventArgs : TreeGridNodeEventBase
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="node"></param>
        public CollapsedEventArgs(TreeGridNode node)
            : base(node)
        {
        }
    }

    /// <summary>
    /// 
    /// </summary>
    public class ExpandingEventArgs : System.ComponentModel.CancelEventArgs
    {
        private TreeGridNode _node;

        private ExpandingEventArgs() { }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="node"></param>
        public ExpandingEventArgs(TreeGridNode node)
            : base()
        {
            this._node = node;
        }

        /// <summary>
        /// 
        /// </summary>
        public TreeGridNode Node
        {
            get { return _node; }
        }

    }

    /// <summary>
    /// 
    /// </summary>
    public class ExpandedEventArgs : TreeGridNodeEventBase
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="node"></param>
        public ExpandedEventArgs(TreeGridNode node)
            : base(node)
        {
        }
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    public delegate void ExpandingEventHandler(object sender, ExpandingEventArgs e);

    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    public delegate void ExpandedEventHandler(object sender, ExpandedEventArgs e);

    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    public delegate void CollapsingEventHandler(object sender, CollapsingEventArgs e);

    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    public delegate void CollapsedEventHandler(object sender, CollapsedEventArgs e);

}
